package com.aiapphub.SystemCode.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * AI对话文件实体
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ai_file")
public class AiFile {
    
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 文件名
     */
    @TableField("file_name")
    private String fileName;
    
    /**
     * 原始文件名
     */
    @TableField("original_name")
    private String originalName;
    
    /**
     * 文件路径
     */
    @TableField("file_path")
    private String filePath;
    
    /**
     * 文件大小（字节）
     */
    @TableField("file_size")
    private Long fileSize;
    
    /**
     * 文件类型
     */
    @TableField("file_type")
    private String fileType;
    
    /**
     * 文件扩展名
     */
    @TableField("file_extension")
    private String fileExtension;
    
    /**
     * 用户ID
     */
    @TableField("user_id")
    private String userId;
    
    /**
     * 上传时间
     */
    @TableField("upload_time")
    private LocalDateTime uploadTime;
    
    /**
     * 文件状态：UPLOADING-上传中，SUCCESS-成功，FAILED-失败
     */
    @TableField("status")
    private String status;
    
    /**
     * 文件描述
     */
    @TableField("description")
    private String description;
    
    /**
     * Dify API响应信息
     */
    @TableField("dify_response")
    private String difyResponse;
    
    /**
     * Dify 文件ID（从上传响应中提取，不映射到数据库）
     * 用于前端直接获取 upload_file_id
     */
    @TableField(exist = false)
    private String uploadFileId;
}
